s = "Hello, Python world!"


# 1. 字符串长度计算
length = len(s)
print(length)  # 输出: 20

# 2. 计算字符串中"o"字符的个数
count_o = s.count('o')
print(count_o)  # 输出: 3

# 3. 将字符串转换为大写
upper_s = s.upper()
print(upper_s)  # 输出: "HELLO, PYTHON WORLD!"

# 4. 将字符串转换为小写
lower_s = s.lower()
print(lower_s)  # 输出: "hello, python world!"

# 5. 查找"Python"在字符串中的位置
index_python = s.find('Python')
print(index_python)  # 输出: 7

# 6. 替换字符串中的"world"为"universe"
new_s = s.replace('world', 'universe')
print(new_s)  # 输出: "Hello,Python universe!"

# 7. 检查字符串是否以"Hello"开始
starts_hello = s.startswith('Hello')
print(starts_hello)  # 输出: True

# 8. 检查字符串是否以"!"结尾
ends_excl = s.endswith('!')
print(ends_excl)  # 输出: True

# 9. 以","为分隔符，拆分字符串
split_s = s.split(',')
print(split_s)  # 输出: ['Hello', ' Python world!']

# 10. 去除字符串首尾的"!"
strip_s = s.strip('!')
print(strip_s)  # 输出: "Hello, Python world"

# 11. 字符串反转
reversed_s = s[::-1]
print(reversed_s)  # 输出: "!dlrow nohtyP ,olleH"

# 12. 字符串切片，获取"Python"
python_slice = s[7:13]
print(python_slice)  # 输出: "Python"

# 13. 将字符串s中的"Hello,"删除
without_hello = s.replace('Hello,', '')
print(without_hello)  # 输出: " Python world!"

# 14. 拼接两个字符串 "Hello," 和 "World!"
concat_s = "Hello," + " " + "World!"
print(concat_s)  # 输出: "Hello, World!"

# 15. 使用f-string合并字符串和数字2021
year = 2021
fstring_s = f"Year: {year}"
print(fstring_s)  # 输出: "Year: 2021"

# 16. 找出'a'第一次出现的位置
index_a = s.find('a')
print(index_a)  # 输出: -1（不存在）

# 17. 找出'e'最后一次出现的位置
last_e = s.rfind('e')
print(last_e)  # 输出: 1

# 18. 计算字符串中空格的数量
space_count = s.count(' ')
print(space_count)  # 输出: 2

# 19. 使用循环遍历字符串中的每个字符
for char in s:
    print(char, end='|')  # 输出: H|e|l|l|o|,| |P|y|t|h|o|n| |w|o|r|l|d|!|

# 20. 将字符串转为"列表"形式，每个字符为一个列表元素
char_list = list(s)
print(char_list)  # 输出: ['H', 'e', ..., '!']

# 21. 字符串排序（提示：先转换为列表）
sorted_s = ''.join(sorted(s))
print(sorted_s)  # 输出: " !,HPehllnoortwdy"

# 22. 判断字符串是否为数字
is_numeric = s.isnumeric()
print(is_numeric)  # 输出: False

# 23. 将列表 `['Hello,', 'Python', 'World!']` 使用空格连接为一个字符串
words = ['Hello,', 'Python', 'World!']
joined_s = ' '.join(words)
print(joined_s)  # 输出: "Hello, Python World!"

# 24. 使用%操作符格式化字符串，将数字100插入到"Number: "后面
formatted_s = "Number: %d" % 100
print(formatted_s)  # 输出: "Number: 100"

# 25. 检查字符串是否全部为小写字母
is_lower = s.islower()
print(is_lower)  # 输出: False

# 26. 检查字符串是否全部为大写字母
is_upper = s.isupper()
print(is_upper)  # 输出: False

# 27. 将数字列表 `[1, 2, 3]` 转换成字符串，元素之间用`-`连接
numbers = [1, 2, 3]
numbers_str = '-'.join(map(str, numbers))
print(numbers_str)  # 输出: "1-2-3"

# 28. 找出字符串中所有的"o"的位置
o_positions = [i for i, char in enumerate(s) if char == 'o']
print(o_positions)  # 输出: [4,11,15]

# 29. 替换字符串中的第一个"o"为"O"
replaced_first_o = s.replace('o', 'O', 1)
print(replaced_first_o)  # 输出: "HellO, Python world!"

# 30. 字符串插入操作，向字符串指定位置插入子字符串"amazing "
insert_pos = 7
new_s = s[:insert_pos] + "amazing " + s[insert_pos:]
print(new_s)  # 输出: "Hello, amazing Python world!"

